1. Field of the Invention
This invention relates to computer systems and, more particularly, to web services communication among computer systems.
2. Description of the Related Art
As enterprises increase their use of information technology solutions to manage various enterprise functions, and with the promulgation of various Internet standards for communicating between computer systems, demand for techniques to facilitate the exchange of information and services across enterprises (or within large, decentralized enterprises) has also increased. For example, the World Wide Web (or simply, the web) has become a common portal for selling products and services to end consumers. However, in some early web-storefront implementations, only the order-entry process was automated by the web application; in some instances, web-entered orders were simply printed out while the order fulfillment process (including steps such as payment verification, order picking/supplier provisioning, and order delivery) was conducted manually.
Over time, as enterprises and their partners automated their business processes and increased their Internet presence, the possibility to extend such automation to interfaces between dissimilar applications or enterprises became realized. For example, a credit card provider may provide a facility whereby a merchant may submit an Internet request to validate a customer's payment information, such that the merchant may configure an order entry application to automatically verify customer payment information without manual intervention. Similarly, distributors, subcontractors, and other clients may provide ordering and fulfillment interfaces for computer-submitted requests to potentially allow for automation of all phases of a customer transaction, from order entry to fulfillment.
One common model for configuring application services to be accessed by requesting clients is the web services model, in which a client may be configured to request a web service by conveying a message or document including the details of the request to the web service, typically using a web protocol such as Hypertext Transfer Protocol (HTTP). Upon receiving the request, the web service may process the request (e.g., using one or more applications) and may return results to the client or carry out some other action. In typical web service implementations, a provider of a web service may indicate the availability of a given web service by publishing a description (using a protocol such as Web Services Description Language (WSDL), for example) of the web service in a directory (using a protocol such as Universal Description, Discovery and Integration (UDDI), for example). A client desiring to interact with a web service may use such directory and description information to locate the service.
Although the web services model of providing client access to application services is increasingly popular, conventional web services implementations may limit scalability and maintenance of applications. For example, in one conventional embodiment, each client application that desires access to web services must implement its own interface to access and coordinate communication with the desired services, such as by sending an outgoing message from the enterprise to a particular web service. In a complex enterprise where numerous applications are configured to generate outgoing messages to access web services, such an implementation may result in redundant development effort, as the necessary interfaces are coded into each application, as well as long-term scalability and maintenance issues arising from such a decentralized web services interface (such as modifying all applications if the web services interfaces change, for example).